Scripting Funktionen
Scripting in der FVA-Workbench basiert auf der bekannten Web-Skriptsprache JavaScript. Die Syntax der Anweisungen entspricht demnach der Syntax von JavaScript.
Berechnungsfunktionen
Diese Funktion führt eine Berechnungsmethode (Rechenziel) aus.
Liste aller Berechnungsmethoden (Rechenziel IDs)
| Funktionsname | runCalcMethod(methodID, compID); | ||||||
| Parameterliste | Parameter | Typ | Beschreibung | ||||
| methodID | String | Eindeutige ID des auszuführenden Berechnungsmethode | |||||
| compID | int | Eindeutige ID der obersten Komponente des zu berechnenden Zweig im Modell | |||||
| {options} |
Objekt |
|
|||||
| Rückgabewert |
int STATUS OK = 1; STATUS CANCELED = 0; STATUS ERROR = -1; |
||||||
| Möglicher Fehler |
Rechenmethode existiert nicht (Bezeichnung ist nicht korrekt) Komponente existiert nicht Komponente ist mit der angegebenen Berechnungsmethode nicht berechenbar |
||||||
| Bedingung | Die angegebene Komponente ist vorhanden und berechenbar mit der angegeben Berechnungsmethode. | ||||||
Beispiel:
Im Beispiel wird das Rechenziel Hauptgeometrie (100_DETAILED_MAIN_GEOMETRY) auf der ersten Stufe im Getriebe ausgeführt. Die Rechenkernausgaben werden im Verzeichnis "C:\temp" abgelegt.
methodID = '100_DETAILED_MAIN_GEOMETRY';
clearMonitor();
var status = runCalcMethod(methodID, getCompByType('cylindrical_mesh')[0], {resultpath: "C:\\temp\\", createResultpath: 1});
println( "runCalcMethod '" + methodID + "' has status " + status);
Zugriff auf Komponenten
Liefert eine Liste aller Komponenten eines bestimmten Typs.
Liste aller Komponenten in der FVA-Workbench
| Funktionsname | getCompByType(compType); | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| compType | String | Typ der Komponente (z.B. „cylindrical_mesh“) | |
| Rückgabewert | String | ||
| Möglicher Fehler | Fehlerhafter Komponenten-Typ | ||
| Bedingung | - | ||
Falls im Modell keine Komponenten des angegeben Typs enthalten sind, wird ein leeres Array (Länge = 0) geliefert.
Beispiel:
//Um die Elemente eines aus Zahlen bestehenden Arrays (z.B. Komponenten ID's) numerisch zu sortieren, muss der Methode sort eine Vergleichsfunktion übergeben werden.
//Die Funktion sortNumber() überprüft jeweils zwei Elemente a und b, ob sie größer (+1) gleich (0) oder kleiner (-1) sind.
function sortNumber(a, b) {
return a - b;
}
var bearings = getCompByType( 'bearing' ).sort(sortNumber); //Alle Lager im Modell in sortierter Reihenfolge
var meshes = getCompByType( 'cylindrical_mesh' ).sort(sortNumber); //Alle Stirnradstufen im Modell in sortierter Reihenfolge
var gears = getCompByType( 'cylindrical_gear' ).sort(sortNumber); //Alle Stirnräder im Modell in sortierter Reihenfolge
println('ID first bearing: ' + bearings[0] + '\nID first cylindrical stage: ' + meshes[0] + ' \nID first gear: ' + gears[0]); //Ausgabe der jeweils ersten Komponenten ID im Array [0]
Liefert den Namen, Typ, Änderungsdatum der Komponente.
| Funktionsname | getCompProperty(compID, propertyID) | |||||||||||||||
| Parameterliste | Parameter | Typ | Beschreibung | |||||||||||||
| compID | int | Eindeutige ID der Komponente im Modell (z.B. „4“) | ||||||||||||||
| propertyID | String |
|
||||||||||||||
| Rückgabewert | Eigenschaft der Komponente | |||||||||||||||
| Möglicher Fehler |
Fehlerhafte Komponenten-ID |
|||||||||||||||
Beispiel:
var component = 3; //Stirnradstufe mit der ID 3
println(getCompProperty(component,'TYPE'))
println(getCompProperty(component,'NAME'))
println(getCompProperty(component,'VISIBLE'))
println(getCompProperty(component, 'STATE'))
println(getCompProperty(component,'IDENT_NO'))
println(getCompProperty(component, 'DRAWING_NO'))
Mit der Funktion können Unterkomponenten bzw. verbundene Komponenten abgefragt werden. Der Rückgabewert ist die Komponenten ID der Unterkomponenten.
Zugriff auf Attribute
Diese Funktion liest den Wert eines Attributs. Falls das Attribut eine Maßeinheit besitzt, wird sie nicht zurückgegeben.
| Funktionsname | getAttr( String attrID, int compID, int dataClass ); | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| attrID | String | Eindeutige ID des Attributs im Modell | |
| compID | int | Eindeutige ID der Komponente im Modell | |
| dataClass | int | Gibt an, ob der Eingabe- oder Berechnungswert zurück gegeben werden soll. 1: EDAT 0: RDAT |
|
| Rückgabewert | Objekt : Wert des Attributs | ||
| Möglicher Fehler | Fehlerhafte Attribut-ID Fehlerhafte Komponenten-ID |
||
| Bedingung | Nur für Attribute vom Typ String, Integer, Double, Boolean, Array, Matrix | ||
Beispiel:
teeth = getAttr( 'number of teeth', 8 , EDAT); // Zähnezahl Rad[8]
bearing_type = getAttr( 'name', 10 , EDAT); // Katalogname Lager[10]
println('Die Zähnezahl ist: '+ teeth);
println('Die Lagerbezeichnung ist: '+ bearing_type);
Für technische Attribute liefert diese Funktion nur den Wert (keine Einheit). Bei einem Array- oder Matrix-Wert wird ein JavaScript-Array geliefert. Dieses kann mit JavaScript-Standard-Befehlen weiter bearbeitet werden.
Beispiel:
var array = getAttr("static capacity", getCompByType('bearing')[0], EDAT); //Array Attribut static capacity für das erste Wälzlager im Modell
for (i = 0; i < array.length; i++) // Ausgabe aller Array Werte durch eine Schleife
{
println(array[i]);
}
Diese Funktion wird dazu verwendet, einem Attribut einen neuen Wert (Eingabewert EDAT oder Ausgabewert RDAT) zuzuweisen. Achtung: im Normalfall sollten nur Eingabewerte gesetzt werden. Dann kann die Kurzschreibweise setEdatAttr verwendet werden. Vor dem Start eines Rechenziels werden alle RDAT Werte gelöscht.
| Funktionsname | setAttr(attrID, compID, value, dataclass) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| attrID | String | Eindeutige ID des Attributs im Modell | |
| compID | int | Eindeutige ID der Komponente im Modell | |
| value | Object | Der neue Attributwert | |
| dataclass | int | 0 (RDAT), 1 (EDAT) | |
| Rückgabewert | - | ||
| Möglicher Fehler | Fehlerhafte Attribut-ID Fehlerhafte Komponenten-ID Fehlerhafter Attributwert |
||
| Bedingung | Nur für Attribute vom Typ String, Integer, Double, Boolean, Array und Matrix Das Attribut ist nicht durch Logik gesperrt Der eingegebene Wert verstößt nicht gegen die Constraints |
||
Beispiel:
var gearUnit = 1;
setAttr( 'temperature', gearUnit, '90', EDAT); // EDAT Wert für Öltemperatur setzen
Diese Funktion wird auch für technische Attribute (Attribute mit Einheit) verwendet. Die Eingabe der Einheit ist nicht möglich. Das System geht davon aus, dass der Benutzer nur den Wert ändern möchte.
Diese Funktion löscht den EDAT-Wert eines Attributs.
| Funktionsname | delAttr( attrID, compID ); | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| attrID | String | Eindeutige ID des Attributs im Modell | |
| compID | int | Eindeutige ID der Komponente im Modell | |
| Rückgabewert | boolean true: Wenn Wert gelöscht, sonst false. |
||
| Möglicher Fehler | Fehlerhafte Attribut-ID
Fehlerhafte Komponenten-ID |
||
| Bedingung | Nur für Attribute vom Typ String, Integer, Double, Boolean, Array und Matrix | ||
Bei Matrizen und Arrays werden die Inhalte der Zellen gelöscht, nicht aber die Matrizen und Arrays selbst.
Beispiel:
var gearUnit = 1;
delAttr( 'lubricant', 1); //Schmierstoff löschen
Liefert den Namen, Typ, Maßeinheit, Formelzeichen des Attributs
| Funktionsname | getAttrProperty (attrID, componentID, propertyID) | |||||||||||||||||||||
| Parameterliste | Parameter | Typ | Beschreibung | |||||||||||||||||||
| attrID | String | Eindeutige ID des Attributes im Modell (z.B. cordal height) | ||||||||||||||||||||
| componentID | int | ID der Stufe (z.B. „3“) | ||||||||||||||||||||
| propertyID | String |
|
||||||||||||||||||||
| Rückgabewert | Eigenschaft des Attributs übersetzt in der ausgewählten Sprache (Deutsch / Englisch) | |||||||||||||||||||||
| Möglicher Fehler | Fehlerhafte Komponenten-ID Attribut- und Komponenten-ID passen nicht zusammen |
|||||||||||||||||||||
Beispiel:
var attr = 'face width' //Attribut Zahnbreite
var component = 8 //Stirnrad 8
println('Typ: ' + getAttrProperty(attr, component , 'TYPE'))
println('Produktmodell Nummer: ' + getAttrProperty(attr, component , 'NUMBER'))
println('Name: ' + getAttrProperty(attr, component , 'NAME'))
println('Einheit: ' + getAttrProperty(attr, component , 'UNIT_NAME'))
println('Formelzeichen: ' + getAttrProperty(attr, component , 'SYMBOL'))
println('Wert EDAT: ' + getAttrProperty(attr, component , 'EDAT_VALUE'))
println('Wert RDAT: ' + getAttrProperty(attr, component , 'RDAT_VALUE'))
println('Zuletzt geändert am: ' + getAttrProperty(attr, component , 'LAST_CHANGE_DATE'))
Diese Funktion wird dazu verwendet, einem Attribut einen neuen Eingabewert (EDAT-Wert) zuzuweisen.
| Funktionsname | setEdatAttr( attrID, compID, value ) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| attrID | String | Eindeutige ID des Attributs im Modell | |
| compID | int | Eindeutige ID der Komponente im Modell | |
| value | Object | Der neue Attributwert | |
| Rückgabewert | - | ||
| Möglicher Fehler |
Fehlerhafte Attribut-ID Fehlerhafte Komponenten-ID Fehlerhafter Attributwert |
||
| Bedingung |
Nur für Attribute vom Typ String, Integer, Double, Boolean, Array und Matrix Das Attribut ist nicht durch Logik gesperrt Der eingegebene Wert verstößt nicht gegen die Constraints |
||
Beispiel:
var gearUnit = 1;
setEdatAttr( 'temperature', gearUnit, '80'); // EDAT Wert für Öltemperatur setzen
Diese Funktion wird auch für technische Attribute (Attribute mit Einheit) verwendet. Die Eingabe der Einheit ist nicht möglich. Das System geht davon aus, dass der Benutzer nur den Wert ändern möchte.
Datenbankzugriff
| Funktionsname | refreshDbComp(dbCompID); | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| dbCompID | int | ID der Datenbank-Komponente Im Modell (z.B. „22“) | |
| Rückgabewert | - | ||
| Möglicher Fehler | Fehlerhafte DB-Komponenten-ID | ||
| Bedingung | Datenbank-Komponente existiert im Modell | ||
Beispiel:
// Aktualisiert die DB-Komponente mit der ID 22 aus der externen Datenbank
refreshDbComp(22);
I/O Funktionen
Mit dieser Funktion wird aus den Berechnungsergebnissen für das aktuelle Modell und einer angegebenen Reportvorlage ein HTML-Report generiert. Eine bestehende Datei wird überschrieben.
| Funktionsname | generateReport(templateFile, outputFile) | |||||||||||
| Parameterliste | Parameter | Typ | Beschreibung | |||||||||
| templateFile | String | Pfad + Name der Datei | ||||||||||
| outputFile | String |
Pfad + Name der Datei |
||||||||||
| {options} | Objekt |
|
||||||||||
| Rückgabewert | 1 – Erstellung des Reports erfolgreich.
2 – Erstellung des Reports fehlgeschlagen. |
|||||||||||
| Möglicher Fehler | Zugriffsbeschränkungen auf Ordner/Dateien Fehlende Reportvorlage |
|||||||||||
Beispiel 1:
Generiert einen HTML-Report im Ordner C:\temp\output mit Hilfe der Template Datei. C:\template.wbrep.
var result = generateReport("C:\\template.wbrep", "C:\\temp\\output\\report.html", {compactView: false, language: "de", completeTree: false, notifications: true, navigationBar: true});
if(result == 1) { alert('Report generated successfully') }
else { alert('Could not create report') }
Mit Hilfe dieser Funktion kann das Model in verschiedene Formate exportiert werden. Dabei bestimmt die Dateiendung das zu exportierende Format. Für den REXS Export können zusätzliche Optionen übergeben werden. Eine bestehende Datei wird überschrieben.
| Funktionsname | exportModel(fullFileName, options) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| fullFileName | String | Verzeichnis + Name der Datei | |
| options (Nur REXS) | Object |
„IncludeEmptyAttributes“ Legt fest ob leere Attribute mit in die Ausgabedatei übernommen werden sollen (true/false) „DataClass“ legt fest ob EDAT oder RDAT geschrieben werden soll. Sind RDAT Daten nicht valide wird automatisch EDAT geschrieben. („EDAT“/“RDAT“) „Version“ legt die zu verwendende Version der REXS Spezifikation fest |
|
| Rückgabewert | EXPORT_STATUS_OK = 1
EXPORT_STATUS_FILE_PERMISSION_ERROR = -1 EXPORT_STATUS_FOLDER_CREATION_ERROR = -2 EXPORT_UNSUPPORTED_MODEL_FORMAT_ERROR = -3 EXPORT_MODEL_ERROR = -4 |
||
| Möglicher Fehler | Zugriffsbeschränkungen auf Ordner/Dateien. | ||
| Bedingung |
Folgende Endungen werden unterstützt: .wbpx/.WBPX |
||
Beispiel 1:
Erstellt die Datei model.wbpz und speichert sie im Ordner C:\temp.
var result = exportModel("C:\\temp\\model.wbpz")
if(result == EXPORT_STATUS_OK) { alert ('Export was successful') }
else if(result == EXPORT_STATUS_FILE_PERMISSION_ERROR) { alert('Could not write file') }
else if(result == EXPORT_STATUS_FODLER_CREATION_ERROR) { alert('Could not create folder') }
else if(result == EXPORT_UNSUPPORTED_MODEL_FORMAT_ERROR) { alert('Unsupported file ending') }
else if(result == EXPORT_MODEL_ERROR) { alert( 'Something else went wrong') }
Beispiel 2:
Erstellt die Datei model.REXS und speichert sie unter "C:\\temp" mit den folgenden Optionen:
- Version: „1.0“ (REXS 1.0 Spezifikation verwenden)
- DataClass: "EDAT" (Eingabeattribute [EDAT] werden gespeichert
- IncludeEmptyAttributes = "false" (Leere Attribute werden nicht gespeichert)
var options = { Version: „1.0“, DataClass: "EDAT", IncludeEmptyAttributes = "false"}
exportModel("C:\\temp\\model.REXS", options)
Speichert das Modell
| Funktionsname | loadModel(pathToModelFile) | ||
| Parameterliste | - | ||
| Rückgabewert | - | ||
| Möglicher Fehler | - | ||
| Bedingung | Die Funktion kann nur im Batchbetrieb verwendet werden. | ||
Beispiel:
//Lädt das Modell
loadModel("c:\\modell.wbpz");
Speichert das Modell
| Funktionsname | saveModel() | ||
| Parameterliste | - | ||
| Rückgabewert | - | ||
| Möglicher Fehler | - | ||
| Bedingung | Modell besitzt bereits einen Namen. Wenn nicht, dann speichern Sie das Modell vor der ersten Ausführung des Skripts. | ||
Beispiel:
//Speichert das Modell
saveModel();
Mit Hilfe dieser neuen Funktion können Dateien im ASCI Format (erlaubte Endungen: *txt, *csv) eingelesen werden. Die Datei wird Zeile für Zeile gelesen. Jede Zeile wird in einer Array-Zelle gespeichert. Das parsen der einzelnen Zeilen der Datei in einem Script erfolgt mit Subscripten, die der Anwender selbst schreibt.
| Funktionsname | readFile(path) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| path | String | Verzeichnis + Name der Datei | |
| Rückgabewert | Inhalt der Datei in einem String Array | ||
| Möglicher Fehler | - Datei existiert nicht oder Zugriff verweigert
- Datei ist im Binär-Format |
||
| Bedingung | - ASCI- Format (*txt, *csv) | ||
Beispiel:
//**
test script for 'readFile'
*/
// read the whole file into an array
var strFile = 'c:\\temp\\test.txt';
var aFileContent = readFile( strFile );
// echo file content to scripting console
for ( var i = 0; i < aFileContent.length; ++i )
println( aFileContent[i] );
// write content to another file - the two test files must be identical
var strFile2 = 'c:\\temp\\test_1.txt';
writeToFile( strFile2, '', 'c' );
for ( var i = 0; i < aFileContent.length; ++i )
writeToFile( strFile2, aFileContent[i] + '\r\n' );
Schreibt einen Text in die aktuell geöffnete Datei. Ist der angegebene Ordner nicht vorhanden, wird er erzeugt.
| Funktionsname | writeToFile(String path, String text)
writeToFile(String path, String text, String mode) writeToFile(String path, String text, String mode, String encoding) |
||||
| Parameterliste | Parameter | Typ | Beschreibung | ||
| path | String | Verzeichnis + Name der Datei Pfade können auch relativ angegeben werden. In diesem Fall dient das Verzeichnis Installationspfad\FVA-Workbench\ |
|||
| Text | String | Der Text, der in die Datei geschrieben werden soll. | |||
| mode | String |
|
|||
|
encoding |
String |
|
|||
| Rückgabewert | - | ||||
| Möglicher Fehler | Der Benutzer hat keine Schreibberechtigung für den angegeben Pfad | ||||
| Bedingung | - | ||||
| Hinweise |
Ohne Parameter wird die Standardcodierung des Betriebssystems verwendet. |
||||
Beispiel:
// Erstellt "Erster Teil".
writeToFile('c:\\temp\\test.txt', 'Erster Teil','c' );
// Fügt den "Zweiten Teil" zum "Ersten" hinzu.
writeToFile('c:\\temp\\test.txt', 'Zweiten Teil','a' );
// Fügt den "Dritten" zum "Ersten und Zweiten" hinzu.
writeToFile('c:\\temp\\test.txt', 'Dritter Teil');
// schreibt den vierten Teil dabei werden die Teile 1 ,2 und 3 gelöscht.
writeToFile('c:\\temp\\test.txt', 'Vierter Teil','c');
Mit Hilfe dieser Funktion werden die Berechnungsdaten des aktuell geöffneten Models in den Zielordner kopiert.
| Funktionsname | exportArchive(folderPath)
|
||
| Parameterliste | Parameter | Typ | Beschreibung |
| folderPath | String | Zielverzeichnis | |
| Rückgabewert | EXPORT_STATUS_OK = 1
EXPORT_STATUS_FILE_PERMISSION_ERROR = -1 EXPORT_STATUS_FOLDER_CREATION_ERROR = -2 EXPORT_MODEL_ERROR = -4 |
||
| Möglicher Fehler | Zugriffsbeschränkungen auf Ordner | ||
| Bedingung | - | ||
Beispiel:
Exportiert die Berechnungsergebnisse des aktuellen Modells in den Ordner: "C:\\temp\\archive"
var result = exportModel("C:\\temp\\archive")
if(result == EXPORT_STATUS_OK) { alert ('Export was successful') }
else if(result == EXPORT_STATUS_FILE_PERMISSION_ERROR) { alert('Could not write file') }
else if(result == EXPORT_STATUS_FODLER_CREATION_ERROR) { alert('Could not create folder') }
else if(result == EXPORT_MODEL_ERROR) { alert( 'Something else went wrong') }
Mit Hilfe dieser Funktion können Benachrichtigungen aus der Meldungsausgabe in ein .xml File exportiert werden. Eine bestehende Datei wird überschrieben.
| Funktionsname | exportNotifications(outputFile)
|
||
| Parameterliste | Parameter | Typ | Beschreibung |
| outputFile | String | Verzeichnis + Name der Datei | |
| Rückgabewert | EXPORT_STATUS_OK = 1
EXPORT_STATUS_FILE_PERMISSION_ERROR = -1 EXPORT_STATUS_FOLDER_CREATION_ERROR = -2 EXPORT_MODEL_ERROR = -4 |
||
| Möglicher Fehler | Zugriffsbeschränkungen auf Dateien oder Ordner. | ||
Beispiel:
Exportiert die Benachrichtigung in der Meldungsausgabe "C:\\temp\\archive"
var result = exportNotifications("C:\\temp\\archive")
if(result == EXPORT_STATUS_OK) { alert ('Export was successful') }
else if(result == EXPORT_STATUS_FILE_PERMISSION_ERROR) { alert('Could not write file') }
else if(result == EXPORT_STATUS_FODLER_CREATION_ERROR) { alert('Could not create folder') }
else if(result == EXPORT_MODEL_ERROR) { alert( 'Something else went wrong') }
Hilfsfunktionen
Gibt eine Meldung in einem Dialog aus. Das Programm wartet, bis der Benutzer die Nachricht mit [OK] bestätigt.
| Funktionsname | alert (text) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| text | String | Der Text, der in dem Warnhinweis erscheinen soll. | |
| Rückgabewert | - | ||
| Möglicher Fehler | - | ||
| Bedingung | - | ||
Beispiel:
for (i =0; i<5; i ++) // Berechnungsdurchläufe
alert('Das ist der ' + i + '. Durchlauf'); // Hinweis
Löscht den Inhalt des Monitors
| Funktionsname | clearMonitor (..) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| - | - | - | |
| Rückgabewert | - | ||
| Möglicher Fehler | - | ||
| Bedingung | - | ||
Beispiel:
// Monitorbereich entleeren
clearMonitor();
Diese Funktion löscht alle berechneten Werte.
| Funktionsname | delRDAT() | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| - | |||
| Rückgabewert | - | ||
| Möglicher Fehler | - | ||
| Bedingung | Nur für Attribute vom Typ String, Integer, Double, Boolean, Array und Matrix | ||
Beispiel:
// Alle berechneten Werte löschen (RDAT-Spalte)
delRDAT();
Wandelt Zeichen und Zahlen mit unterschiedlichen Formatierungen um
| Funktionsname | format() | ||
Aufbau:
| % [argument index] [flag] [width] [.precision] type | ||
| % | erforderlich | Format-Spezifizierer |
| [argument index] | optional | Gibt an, welches der Argumente formatiert werden soll. Wenn nicht vorhanden, werden die Argumente in der gleichen Reihenfolge formatiert wie sie in der Liste erscheinen. |
| [flag] | optional | Verändern das Format der Ausgabe. Ein Minuszeichen (-) sorgt z.B. für eine linksbündige Ausgabe. |
| [width] | optional | Ist eine nicht-negative Ganzzahl, die die Mindestanzahl der insgesamt ausgegebenen Zeichen bestimmt. |
| [.precision] | optional | Schränkt die Anzahl der ausgegebenen Zeichen ein. |
| type | erforderlich | Angabe des Datentyps. |
Für eine ausführliche Dokumentation der Funktion siehe: https://docs.oracle.com/javase/7/docs/api/java/util/Formatter.html
Beispiel:
var numbers =
[
234532.3532954,
3453.0008511,
53.0013632,
44532.3531001
];
println( "\n" + format( "The price for a %s is $%.2f", "burger", 0.99 ) + "\n" );
println( "right-aligned formatting to two decimal places of some numbers:"+"\n" );
println( "number\t\t\t\t\tformatted\n---------------------------------" );
for ( var i = 0; i < numbers.length; ++i )
{
println( format( "%-16.7f %16.2f", numbers[i], numbers[i] ) );
}
println(' ')
println( "i\tsqrt(i)\ti^2\n----------------" );
for (var i = 1; i <= 10; ++i )
{
println( format( "%.0f\t%1.4f\t%.0f", i, Math.sqrt( i ), i * i ) );
};
Die Pfade zu Scripten können relativ oder absolut angegeben werden. Um die Pfade relativ anzugeben, muss das Basisverzeichnis unter Einstellungen -> Verzeichnisse -> Speicherort für benutzerdefinierte Skripte angegeben werden.
Beispiel:
// Fall 1: Bindet ein Script aus dem angegebenen Verzeichnis ein
// Fall 2: Bindet alle Scripte aus dem angegebenen Verzeichnis ein
// Fall 3 Bindet ein Script über einen absoluten Pfad ein
// Fall 1
#include "myscript.wbjs";
// Fall 2
# include "*";
// Fall 3
# include "C:\temp\scripting\Lib\printing.wbjs";
// Beispieldatei test.wbjs mit der Funktion myfunction()
function myfunction()
{
println('This text was generated using a function from an external script');
}
// Einbinden der Datei test.wbjs und Aufrufen der Funktion myfunction()
Gibt den übergebenen Text auf dem Monitor aus.
| Funktionsname | print(text)
println(text) |
||
| Parameterliste | Parameter | Typ | Beschreibung |
| text | String | Der Text, der in den Monitorbereich geschrieben werden soll. Print(..): Gibt den Text aus, ohne auf eine neuen Zeile zu springen. Println(..): Gibt den Text auf einer neuen Zeile aus. |
|
| Rückgabewert | - | ||
| Möglicher Fehler | - | ||
| Bedingung | - | ||
Beispiel:
// Gibt den Text auf dem Monitor aus.
print( 'Testdurchlauf Nummer 1' );
// Gibt den Text in einer neuen Zeile auf dem Monitor aus.
println( 'Testdurchlauf Nummer 1' );
Mit dieser Funktion erscheint ein Eingabedialog.
| Eigenschaft | Wert | ||
| Funktionsname | prompt(text) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| text | String | Der Text, der im Eingabedialog als Beschreibung erscheinen soll. | |
| Rückgabewert | Der Inhalt des erzeugten Eingabefeldes | ||
| Möglicher Fehler | - | ||
| Bedingung | - | ||
Beispiel:
//**
test script for 'prompt‘
*/
prompt("Bitte geben Sie einen neuen Wert für Achsabstand an“ );
Stoppt die Ausführung des aktuellen laufenden Skripts. Dies kann wenige Sekunden bis einige Minuten dauern.
| Funktionsname | stopScript() | ||
| Parameterliste | - | ||
| Rückgabewert | Ausgabe auf Monitor: unbedingter Scriptabbruch. | ||
| Möglicher Fehler | - | ||
| Bedingung | - | ||
Beispiel:
// Stoppt die Ausführung des Scriptes.
stopScript();
Wendet die Regeln der Eingabelogik des Enterprise Modus auf das Modell an. Hierdurch wird überprüft, ob die durch Scripting Befehle eingegebenen Daten konsistent sind. So wird sichergestellt, dass die Modelle von den Rechenkernen verstanden und die Ergebnisse korrekt sind.
Wird durch das Ausführen eines Scriptingbefehls ein ungültiger Modellzustand erzeugt, wird der Fehler im Monitorbereich angezeigt.
| Funktionsname | activateLogic( ) | ||
Schaltet alle Eingabelogik-Prüfungen ab.
| Ist die Logik abgeschaltet, muss der Nutzer selbstständig prüfen, ob die Eingabedatei korrekt geschrieben wurde. |
| Funktionsname | deactivateLogic() | ||
Im Transaktionsmodus werden alle Workbenchfunktionen, die nicht zwingend für die Berechnung benötigt werden, abgeschaltet. Hierdurch wird die Rechenzeit reduziert.
Folgende Funktionen werden abgeschaltet:
- Korrelationen (Synchronisierung zwischen verschiedenen Attributen)
- 3D-Darstellung
- Meldungsausgabe
| Funktionsname | startTransactionMode() | ||
| Funktionsname | endTransactionMode() | ||
Prüft, ob ein bestimmtes Attribut z.B. durch Logik gesperrt ist.
| Funktionsname | isAttrLocked(attrID, CompID) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| attrID | String | Eindeutige ID des Attributes im Modell | |
| compID | int | Eindeutige ID der Komponente im Modell | |
| Rückgabewert | Boolean (true / false) | ||
| Möglicher Fehler | Fehlerhafte Attribut- oder Komponenten-ID | ||
| Bedingung | - | ||
Beispiel:
// prüft ob das Attribut Kopfkreisdurchmesser des Stirnrads mit der ID 6 gesperrt ist
var locked = isAttrLocked ('tip diameter'‚ 6);
Prüft ob ein bestimmtes Attribut z.B. durch die Logik versteckt ist.
| Funktionsname | isAttrHidden(attrID, CompID) | ||
| Parameterliste | Parameter | Typ | Beschreibung |
| attrID | String | Eindeutige ID des Attributes im Modell | |
| compID | int | Eindeutige ID der Komponente im Modell | |
| Rückgabewert | Boolean (true / false) | ||
| Möglicher Fehler | Fehlerhafte Attribut- oder Komponenten-ID | ||
| Bedingung | - | ||
Beispiel:
// prüft ob das Attribut Kopfkreisdurchmesser des Stirnrads mit der ID 6 versteckt ist
var hidden = isAttrHidden ('tip diameter'‚ 6);
Entfallene Funktionen
setCalcParam
runCalc
getCalcParam
getActivatedKernel
saveBasicState
restoreBasicState
getMeshGears
getMeshGearAttr
shiftShafts
| Einige Funktionen sind entfallen, da es keine rechenkernspezifischen Funktionen mehr gibt. Die Rechenkern-Parameter werden wie normale Modellparameter behandelt und sind bei den jeweiligen Modellkomponenten zu finden. |